//
//  BaseViewController.swift
//  微博（swift）
//
//  Created by 谢曦 on 2017/5/4.
//  Copyright © 2017年 谢曦. All rights reserved.
//

import UIKit
import SnapKit
//1，private访问级别所修饰的属性或者方法只能在当前类里访问。
//2，fileprivate  fileprivate访问级别所修饰的属性或者方法在当前的Swift源文件里可以访问。（比如上门样例把private改成fileprivate就不会报错了）
 private var  isLogin = false

class BaseViewController: UIViewController {

    var tableView : UITableView?
    var upRefresh : UIRefreshControl?
    //重写placeView的set方法
    lazy var placeView = UIView()
//    {
//        didSet{
//        setPlaceHolderView()
//        }
//    }
    
      override func viewDidLoad() {
        super.viewDidLoad()
         view.backgroundColor=UIColor.init(hexString: "F5F5F5")
        let user =    AccountModel.accountInstance
        print(user.access_token)
        print(user)
        if let accessToken = user.access_token {
            //三目运算符中间要插入空格
            isLogin = accessToken.characters.count>0 ? true : false
        }
        setUI()
        tableView?.mj_header.beginRefreshing()
        NotificationCenter.default.addObserver(self, selector: #selector(refreshUI), name: Notification.Name( "loginSuccessNotification"), object: nil)
        
               }
   

    @objc  private func refreshUI(){
    isLogin=true
    setUI()
    }
    
     // MARK: - public
    
    func loadData()  {
        
    }
    
    func loadMoreData()  {
        
    }
    
    func endLoadData()  {
    tableView?.mj_header.endRefreshing()
    }
    func endLoadMoreData()  {
    tableView?.mj_footer.endRefreshing()

    }
     // MARK: - 登陆注册
    func toRegister(){
    
       print(#function)   
    }
    func toLogin(){
         navigationController?.pushViewController( AuthViewController(), animated:true)
       
        print(#function)
    }


}
extension BaseViewController{
  fileprivate   func setUI()  {
  
    isLogin == true ? setTableView():setPlaceHolderView()
    }
    
    fileprivate   func setTableView()  {
        
        placeView.removeFromSuperview()
        tableView = UITableView.init(frame: view.bounds, style: .plain)
        view.addSubview(tableView!)
        
        //获取类型 classForCoder()
        tableView?.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")
        tableView?.delegate=self
        tableView?.dataSource=self
        //刷新控件
        tableView?.mj_header = MJRefreshNormalHeader.init(refreshingTarget: self, refreshingAction: #selector(loadData));
        tableView?.mj_footer = MJRefreshBackNormalFooter.init(refreshingTarget: self, refreshingAction: #selector(loadMoreData));
        
    }
    
    fileprivate   func setPlaceHolderView(){
//        guard let blankView = placeView else {
//            return
//        }
        tableView?.removeFromSuperview()
       view.addSubview(placeView)
        placeView.snp.makeConstraints { (make) -> Void in
            make.edges.equalTo(view)
        }
        
    }

   

}
 // MARK: - 数据源方法
extension BaseViewController:UITableViewDelegate,UITableViewDataSource{
    
    //不用重写!!!!!
     func numberOfSections(in tableView: UITableView) -> Int {
      return 1
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 20
    }

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
      let cell =  tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text="sdfsd"
      return cell
    }
    
}
